package pers.yurwisher.rubick.common.enums.tip;


import pers.yurwisher.rubick.common.enums.ICustomTipEnum;
import pers.yurwisher.rubick.common.wrapper.CustomTip;

/**
 * 自定义 oauth2异常提示
 * @author yq 2021年4月15日 21:48:21
 */
public enum OAuth2CustomTipEnum implements ICustomTipEnum {

    /**
     * 用户名或密码错误
     */
    BAD_CREDENTIALS(1001, "用户名或密码错误"),

    /**
     * 手机号或验证码不正确
     */
    BAD_MOBILE_CODE(1002, "手机号或验证码不正确"),

    /**
     * 账号禁用
     */
    ACCOUNT_DISABLE(1003, "账号已禁用"),

    /**
     * 账号已过期
     */
    ACCOUNT_EXPIRED(1004, "账号已过期"),

    /**
     * 账号已锁定
     */
    ACCOUNT_LOCKED(1005, "账号已锁定"),

    /**
     * 凭证已过期
     */
    CREDENTIALS_EXPIRED(1006, "凭证已过期"),

    /**
     * 不允许访问
     */
    ACCESS_DENIED(1007, "不允许访问"),

    /**
     * 无权限访问
     */
    PERMISSION_DENIED(1008, "无权限访问"),

    /**
     * 凭证无效或已过期
     */
    CREDENTIALS_INVALID(1009, "凭证无效或已过期"),

    /**
     * 刷新凭证无效或已过期
     */
    REFRESH_CREDENTIALS_INVALID(1010, "刷新凭证无效或已过期"),

    /**
     * 无效请求
     */
    INVALID_REQUEST(1011, "无效请求或请求不接受"),

    /**
     * 无效客户端
     */
    INVALID_CLIENT(1012,"无效客户端"),

    INVALID_BASIC_AUTHENTICATION(1013,"Invalid basic authentication"),

    /**
     * 系统异常
     */
    SYSTEM_ERROR(5000, "系统异常");


    private CustomTip tip;

    OAuth2CustomTipEnum(int code, String msg) {
        this.tip = CustomTip.of(code, msg);
    }

    @Override
    public CustomTip tip() {
        return tip;
    }
}
